package com.qzdsoft.erpcloud.service.pu;

import java.util.List;

import com.qzdsoft.erpcloud.domain.pu.PurchaseOrder;
import com.qzdsoft.erpcloud.vo.pu.PurchaseOrderEditInfo;
import com.qzdsoft.erpcloud.vo.pu.PurchaseOrderInfo;
import com.qzdsoft.erpcloud.vo.pu.PurchaseOrderQueryInfo;
import com.qzdsoft.vo.LayTableResponse;
import com.qzdsoft.vo.Response;

/**
 * 采购订单
 * @author pc-20170420
 *
 */
public interface PurchaseOrderService {
	
	
	/**
	 * 更加指定条件查询采购订单
	 * @param info
	 * @return
	 */
	LayTableResponse<PurchaseOrderInfo> findPurchaseOrdersBy(PurchaseOrderQueryInfo info);

	/**
	 * 展示单个采购订单
	 * @param id
	 * @return
	 */
	PurchaseOrderInfo findPurchaseOrderBy(Integer id);
	
	
	/**
	 * 修改采购订单
	 * @param info
	 * @return
	 */
	Response<String> edit(PurchaseOrderEditInfo info);
	
	/**
	 * 采购订单审核
	 * @param id
	 * @return
	 */
	Response<PurchaseOrderInfo> reivew(Integer userid,Integer id);
	
	/**
	 * 采购订单弃审
	 * @param id
	 * @return
	 */
	Response<PurchaseOrderInfo> cancelReview(Integer userid,Integer id);
	
	
	/**
	 * 采购订单关闭
	 * @param id 采购订单id
	 * @return
	 */
	Response<String> close(Integer id);
	
	/**
	 * 采购订单删除
	 * @param id
	 * @return
	 */
	Response<String> remove(Integer id);

	/**
	 * 新增采购订单
	 * @param info
	 * @return
	 */
    Response<String> add(PurchaseOrderEditInfo info);
	
	
	/**
	 * 查询已审核的采购订单
	 * @param record
	 * @return
	 */
	List<PurchaseOrder> selectReviewOrderByCompanyId(PurchaseOrder record);

}
